تالار های تخصصی

ساخت وبلاگ
زمانی که یک program unit(فانکشن، پکیج، پروسیجر) به صورت invoker right ایجاد می شود، کاربر صدا زننده برنامه، با مجوز خودش این برنامه را اجرا خواهد کرد بنابرین اگر جدولی در برنامه موجود باشد که این کاربر به آن دسترسی نداشته باشد، کارش با خطا متوقف خواهد شد(بررسی Invoker’s Rights و Definer’s Rights). برای مثال، تابع زیر را در نظر بگیرید: SQL> CREATE FUNCTION sys.Tabe(name_malek in varchar2,name_jadval in varchar2) RETURN VARCHAR2 AUTHID CURRENT_USER AS V_bytes varchar2(1000); BEGIN select bytes into V_bytes from dba_segments where owner=name_malek and segment_name=name_jadval; RETURN V_bytes; END; / Function created. این تابع که با یوزر sys ایجاد شده، قرار است نام segment را دریافت و حجم آن را بر اساس بایت برگرداند. عبارت AUTHID CURRENT_USER بیانگر invoker right است. کاربری با نام vahid را با حداقل دسترسی ایجاد کرده و بررسی می کنیم که آیا این کاربر می تواند تابع فوق را اجرا کند؟ SQL> create user vahid identified by a; User created. SQL> grant create session to vahid; Grant succeeded. بدیهی است که اگر کاربری بخواهد تابع کاربر دیگر را اجرا کند، باید مجوز اجرای آن تابع را داشته باشد: SQL> grant execute on sys.tabe to vahid; Grant succeeded. با این شرایط، آیا کاربر vahid می تواند تابع sys.tabe را اجرا کند؟ SQL> conn vahid/a Connected. SQL> select sys.tabe('SYS','JADVAL1') from dual; ERROR at line 1: ORA-00942: table or view does not exist ORA-06512: at "SYS.TABE", line 7 همانطور که می بینید، کاربر vahid با توجه به آنکه به ویوی dba_segments دسترسی ندا تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 78 تاريخ : پنجشنبه 25 اسفند 1401 ساعت: 22:11

استفاده از عبارت parallel در زمان ساخت primary key منجر به انجام عملیات به صورت همروند نخواهد شد. دستور زیر را مشاهده کنید: SQL> alter table all_table add constraint pk_1 primary key (id) parallel 10; Table altered. Elapsed: 00:00:12.36 با فعال کردن trace خواهیم دید که اوراکل برای ساخت ایندکس متناظر با این PK، از عبارت noparallel استفاده کرده و عبارت parallel تاثیر مثبتی در زمان ایجاد این Primary Key نداشته است: PARSING IN CURSOR #140396268419760 len=72 dep=1 uid=109 oct=9 lid=109 tim=29571676036680 hv=2994446983 ad='b9930010' sqlid='c1ddax6t7r8n7' CREATE UNIQUE INDEX "USEF"."PK_1" on "USEF"."ALL_TABLE"("ID") NOPARALLEL بنابرین زمان اجرای دستور فوق با دستور زیر برابر خواهد بود و اجرای هر دو دستور به 13 ثانیه زمان نیاز دارد: SQL> alter table all_table add constraint pk_1 primary key (id) noparallel; Table altered. Elapsed: 00:00:12.95 برای کاهش این زمان، به عنوان یک راهکار می توان قبل از ساخت Primary Key، ایندکس unique مربوط به آن را در حالت parallel ایجاد کرد و سپس محدودیت PK را اضافه کرد: SQL> CREATE UNIQUE INDEX PK_1 on ALL_TABLE(ID) parallel 10; Index created. Elapsed: 00:00:02.45 SQL> alter table all_table add constraint pk_1 primary key (id) using index PK_1; Table altered. Elapsed: 00:00:03.90 با این ترقند، 13 ثانیه را به 6 ثانیه کاهش داده ایم البته اضافه کردن Primary Key به تنهایی به چهار ثانیه زمان نیاز خواهد داشت چرا که قبل از اضافه شدن constraint باید از not null بودن ستون مطمئن شد بنابرین اگر محدودیت not null روی این ستون موجود باشد، این زمان بسیار کاه تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 80 تاريخ : پنجشنبه 25 اسفند 1401 ساعت: 22:11

در این مستند قصد داریم به نحوه نصب Oracle GoldenGate 21c با معماری Microservice بپردازیم. قبل از نصب باید در نظر داشته باشیم که برای استفاده از نسخه مایکروسرویس گلدن گیت، می توانیم این نرم افزار را در سمت source و یا target نصب کنیم و نصب آن در هر دو طرف replication الزامی نیست همچنین source و یا target بودن سرور تاثیری در مراحل نصب نخواهد داشت. قبل از نصب گلدن گیت، مسیری که قرار است نرم افزار در آن نصب شود را ایجاد می کنیم(OGG_HOME): [oracle@target ~]$ mkdir /oracle/OGGMA21c ابزار runInstaller را برای نصب نرم افزار اجرا می کنیم: [oracle@target source]$ unzip 213000_fbo_ggs_Linux_x64_Oracle_services_shiphome.zip [oracle@target ~]$ cd /source/fbo_ggs_Linux_x64_Oracle_services_shiphome/Disk1 [oracle@target Disk1]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 70018 MB Passed Checking swap space: must be greater than 150 MB. Actual 1023 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2023-03-09_10-45-39AM. Please wait ... بر خلاف نسخه های قبلی، در نسخه 21c نیازی به انتخاب نسخه دیتابیس در طول نصب golden gate وجود ندارد: مسیر نصب نرم افزار گلدن گیت را در این مرحله مشخص می کنیم متغیر OGG_HOME باید به مسیری که در این مرحله اعلام می شود، تنظیم شود: خلاصه ای از تنظیمات انجام شده را مشاهده می کنید: نرم افزار در حال نصب است: نرم افزار با موفقیت نصب شده است: در ادامه برای ایجاد تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 88 تاريخ : پنجشنبه 25 اسفند 1401 ساعت: 22:11

پایگاه داده اوراکلhttps://www.usefzadeh.com ........آموزش، مشاوره و پشتیبانی....... Fri, 13 Jan 2023 17:53:44 +0000 fa-IR hourly 1 https://www.usefzadeh.com/wp-content/uploads/2019/10/cropped-oracle-logo-1-32x32.png پایگاه داده اوراکل https://www.usefzadeh.com 32 32 نکاتی در مورد Materialized View و NoLogging https://www.usefzadeh.com/2023/01/13/%d9%86%da%a9%d8%a7%d8%aa%db%8c-%d8%af%d8%b1-%d9%85%d9%88%d8%b1%d8%af-materialized-view-%d9%88-nologging/ https://www.usefzadeh.com/2023/01/13/%d9%86%da%a9%d8%a7%d8%aa%db%8c-%d8%af%d8%b1-%d9%85%d9%88%d8%b1%d8%af-materialized-view-%d9%88-nologging/#respond Fri, 13 Jan 2023 13:37:45 +0000 https://www.usefzadeh.com/?p=13615 بروزرسانی Materialized Viewهای حجیم آن هم به صورت complete می تواند DBA را در جنبه های مختلفی به چالش بکشاند به ویژه آنکه دیتابیس در مود آرشیو قرار داشته باشد چرا که در این صورت، بروزرسانی MV منجر به ایجاد حجم زیادی از آرشیولاگ خواهد شد. البته اثرات منفی این مسئله، صرفا به فضای مصرفی redoها خلاصه نمی شود و از لحاظ پرفورمنسی هم می تواند بر روی عملکرد دیتابیس اثر منفی بگذارد. در این متن بررسی می کنیم که غیرفعال کردن Logging در سطوح object، tablespace و database چه اثراتی را بر روی عملیات ساخت و بروزرسانی Materialized Viewها به همراه خواهد داشت(مطالعه مطلب “تاثیر عملیات NOLOGGING در دیتاگارد”  پیشنهاد می شود). قبل از ورود به بحث اصلی این متن، مثالی را از نحوه تاثیر غیرفعال کردن logging برای یک جدول را مشاهده خواهید کرد. در مثا تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 113 تاريخ : پنجشنبه 6 بهمن 1401 ساعت: 15:26

وکیل ملکی همان وکیل دادگستری می باشد با این تفاوت که وی تخصص و تبحر ویژه ای در دعاوی ملکی دارد.  البته هر چند که توانایی قبول و به نتیجه رساندن آن را دارند اما ترجیح آنها تمرکز روی تخصص انتخابی خود یعنی دعاوی ملکی می باشد. اغلب افراد وقتی با مشکلات ملکی مواجه می شوند به دنبال وکیل ملکی خوب و با تجربه و رزومه قوی در دعاوی ملکی برای پیگیری و دفاع از حق خود می باشند. وکیل ملکی گروه دیده بان حقوق امیر از جمله وکلای مجرب ملکی در تهران می باشد که سابقه و تجربه های موفق زیادی در دعاوی ملکی دارد. وی به تمامی قوانین و روند دادگاه ها و همه مراحل دعاوی ملکی از نظر حقوقی و از نظر عملی کاملا مسلط و مجرب می باشد. گروه وکلای دیده بان حقوق امیر در این مقاله سعی دارد درباره انواع دعاوی حقوقی ملکی و انواع دعاوی کیفری ملکی و توضیحات مربوط به آن صحبت کند می توانید برای مشاوره و تنظیم قرارداد توسط وکیل مجرب و متخصص عقد قرارداد در گروه وکلای دیده بان حقوق امیر با شماره های 02188928452 و 09124726641تماس بگیرید. آدرس تهران، خیابان فلسطین شمالی، نبش کوچه شهید نجف غزایی عتیق، پلاک 475، طبقه پنجم، واحد 57. انواع دعاوی ملکی دعاوی ملکی به دو دسته حقوقی و کیفری تقسیم می شوند. از جمله دعاوی حقوقی می توان به دعاوی 3 گانه شامل تصرف عدوانی، ممانعت از حق و مزاحمت، الزام به تنظیم سند رسمی، حکم تخلیه مستاجر و درخواست صدور دستور تخلیه فوری، الزام به ایفای تعهد مبنی بر تحویل مبیع، ادعای انکار، تردید و جعل نسبت به اسناد عادی مطروحه در دعوا و همچنین ادعای جعل نسبت به اسناد رسمی، خلع ید و دعاوی فسخ و …. اشاره کرد. همچنین دعاوی کیفری ملکی نیز شامل وجه کیفری دعوای تصرف عدوانی، فروش مال غیر، کلاهبرداری، معامله معا تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 127 تاريخ : پنجشنبه 8 دی 1401 ساعت: 12:21

برای نصب Oracle RAC به منظور استفاده در محیط آموزشی و یا اجرای بعضی از تستها، معمولا از Oracle Virtual Box و یا VMware workstation استفاده می کنیم. برای این کار باید به تعداد نودهای کلاستر، ماشین مجازی ایجاد کرده و بر روی هر کدام از این ماشینها، سیستم عاملی را نصب کنیم و در نهایت اقداماتی را در هر کدام از این سیستم عاملها انجام دهیم تا شرایط برای نصب کلاستر فراهم شود. پیکربندی کلاستر در محیط VM نسبتا زمانبر است و شاید کمی پیچیده هم باشد.  البته در این زمینه، VM تنها گزینه ما نیست و استفاده از Docker می تواند به عنوان انتخابی دیگر، ایرادات ذکر شده را از بین ببرد.اوراکل از نسخه 12c امکان اجرای Oracle RAC در داکر را برای محیط تست و develop فراهم کرده و در نسخه 21c، از اجرای Oracle RAC در محیط docker آن هم به صورت عملیاتی پشتیبانی می کند. اجرای Oracle RAC در داکر، می تواند با استفاده از یک یا چند هاست انجام شود که در این متن صرفا از یک هاست استفاده خواهیم کرد و راه اندازی آن در چند هاست را به زمانی دیگر موکول می کنیم. سیستم عاملی که از آن استفاده کرده ایم، Oracle Linux نسخه 7 می باشد و قرار است Oracle RAC نسخه 21c را در این محیط اجرا کنیم. این کار با کمک سه container انجام خواهد شد که یکی از آنها برای DNS server و دو container دیگر هم هر کدام نودهای کلاستر را تشکیل خواهند داد. در ابتدا مراحل پیکربندی را مرور می کنیم: 1.نصب و اجرای داکر 2.آماده سازی داکر هاست 3.تنظیم Docker Network 4.نصب git و کلون Oracle Repository 5.ایجاد container برای DNS 6.ایجاد container برای راه اندازی نود اول کلاستر 7.اضافه کردن نود دوم کلاستر   نصب و اجرای داکر با توجه به آنکه نحوه “نصب داکر د تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 116 تاريخ : پنجشنبه 8 دی 1401 ساعت: 12:21

در صورت حذف تصادفی(و یا عمدی!) فایلهای موجود در مسیر boot/، سیستم عامل برای استارت مجدد به مشکل برخواهد خورد چرا که این دایرکتوری حاوی فایلهایی مربوط به bootloader و همینطور keel لینوکس است که سیستم برای boot شدن به آنها نیاز دارد.بازسازی این فایلها از طریق rescue mode قابل انجام است که در این متن قصد داریم نحوه انجام آن را توضیح دهیم. برای پیش بردن این سناریو، در قدم اول، محتویات boot/ را حذف می کنیم: با اجرای این دستور، سیستم عامل می تواند به کارش ادامه دهد ولی با اولین reboot امکان استارت را نخواهد داشت و خط فرمان  grub rescue را نمایش خواهد داد: در ادامه با کمک فایل ISO که سیستم عامل را از طریق آن نصب کرده ایم، فایلهای مربوط به bootloader و keel را بازسازی می کنیم.بعد از mount کردن ISO و استارت مجدد، گزینه Troubleshooting را انتخاب می کنیم: در گام بعدی Rescue a Oracle Linux system را انتخاب می کنیم. در این مرحله عدد 1را وارد می کنیم تا file system به صورت خودکار شناسایی و mount شود. با استفاده از دستور chroot مسیر root را به mnt/sysroot/ تغییر داده و پس از آن با کمک دستور lsblk مشخص خواهیم کرد که boot/ به کدام دیسک mount شده است: همانطور که می بینید، boot/ به dev/sda1/ء  mount شده و اطلاعاتی در آن موجود نیست. در قدم بعدی برای ایجاد فایلهای بوت لودر grub2، دستور grub2-install را اجرا کرده و فایل boot/grub2/grub.cfg/ را هم با اجرای دستور grub2-mkconfig ایجاد می کنیم: با اجرای این دو دستور، صرفا دایرکتوری grub2 در مسیر boot/ ایجاد خواهد شد و خبری از vmlinuz و initrd در این مسیر نیست: برای ساخت vmlinuz و Initrd، می توانیم بسته keel-core را reinstal تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 123 تاريخ : پنجشنبه 8 دی 1401 ساعت: 12:21

ستونهای DBUSERNAME و CURRENT_USER در ویوی unified_audit_trail شباهت زیادی به هم دارند و در بسیاری از مواقع، این دو ستون حاوی اطلاعات یکسانی هستند. معمولا در این ستونها نام کاربری که به دیتابیس لاگین کرده و دستور را اجرا نموده است ، ذخیره می شود. مگر آنکه کاربر متصل به دیتابیس با حقوق definer(یا همان تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 221 تاريخ : يکشنبه 28 فروردين 1401 ساعت: 18:54

ANY_VALUE تابع جدیدی است که در اوراکل 21c معرفی شده و البته در Release Updateهای انتهایی اوراکل نسخه 19c(یعنی از 19.8 به بالا) هم قابل استفاده است. در متن پیش رو با این تابع آشنا خواهیم شد. *پرس و جوی زیر در pdb1 اجرا می شود و قرار است مشخص کند هر tablespace چند دیتافایل دارد: select t.ts#, t.name, تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 185 تاريخ : يکشنبه 14 فروردين 1401 ساعت: 19:47

با فرمت حلقه FOR آشنا هستید: FOR loop_counter IN [REVERSE] lowest_number..highest_number LOOP {...statements...} END LOOP; مطابق این syntax، قرار است شمارنده(loop_counter) به صورت ترتیبی(با گام یک) از نقطه lowest_number به نقطه highest_number برسد. برای مثال، با اجرای قطعه کد زیر، اعداد 4 تا 8 نم تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 187 تاريخ : يکشنبه 14 فروردين 1401 ساعت: 19:47

خبرنامه